package com.vhall.component.entity.lottery.vo;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.vhall.component.framework.common.annotation.ParamName;
import lombok.Data;

import javax.validation.constraints.*;

/**
 * 发起抽奖 请求vo 兼容组件V1
 *
 * @author zhangtao
 */
@Data
public class LotterySearchReqVO {

    /**
     *
     */
    @ParamName("vss_token")
    @JsonProperty("vss_token")
    private String vssToken;

    /**
     * 房间编号
     */
    @ParamName("room_id")
    @JsonProperty("room_id")
    @NotBlank(message = "房间ID不能为空")
    private String roomId;

    /**
     * 参与抽奖人员范围：
     * 1 全体参会用户
     * 2 参与问卷的参会者
     * 3 参与签到的参会者
     * 4.全体观众
     * 5.已登录观众
     * 6.参与问卷的观众
     * 7.参与签到的观众
     * 8.口令参与
     * 9.分享参与
     * 10.邀请人数参与
     * 11.下单成功的观众
     * 15.参与投票的观众
     */
    @ParamName("lottery_type")
    @JsonProperty("lottery_type")
    @Max(value = 7, message = "抽奖人员范围参数错误")
    @Min(value = 1, message = "抽奖人员范围参数错误(1-7)")
    @Positive(message = "抽奖人员范围参数错误(1-7)")
    @NotNull(message = "lottery_type参数异常")
    private Integer lotteryType;

    /**
     * 搜索关键字
     */

    @NotBlank(message = "搜索关键字参数错误")
    private String keyword;


    /**
     * 抽奖规则
     * 1-指定列表中随机 2-自定义列表中随机
     */
    @ParamName("lottery_rule")
    @JsonProperty("lottery_rule")
    @Max(value = 2, message = "抽奖规则参数错误,1|2")
    @Min(value = 1, message = "抽奖规则参数错误,1|2")
    @Positive(message = "抽奖规则参数错误,1|2")
    @NotNull(message = "lottery_rule参数异常")
    private Integer lotteryRule;


}
